package com.kylin.common.core.validator;

import com.kylin.common.core.beans.ResultCode;
import com.kylin.common.core.exception.CheckException;
import org.apache.commons.lang3.StringUtils;

/**
 * 数据校验
 * @author wuhao
 * @version 1.0 - 2019/8/26
 */
public class Assert {

    private Assert() {
        throw new IllegalStateException("Utility class");
    }

    /**
     * 非空校验
     * @param message 错误信息
     * @param params 需要校验的参数
     * @return
     * @version 1.0  by wuhao at 2019/8/26
     */
    public static void isBlank(String message,Object... params){
        for(Object param: params) {
            if (param == null || StringUtils.isBlank(param.toString())) {
                throw new CheckException(message);
            }
        }
    }

    /**
     * 非空校验
     *
     * @param resultCode 自定义错误码
     * @param params  需要校验的参数
     * @return void
     * @author gonghe
     * @date 2021/7/19 9:11
     */
    public static void isBlank(ResultCode resultCode, Object... params) {
        for (Object param : params) {
            if (param == null || StringUtils.isBlank(param.toString())) {
                throw new CheckException(resultCode);
            }
        }
    }

    /**
     * 校验长度
     * @param message 错误信息
     * @param min 最小长度
     * @param max 最大长度
     * @param params 需要校验参数
     * @return
     * @author wuhao
     * @since 2.2.1 - 2021/7/8
     */
    public static void validLength(String message, int min, int max, String params) {
        if(StringUtils.isBlank(params)) {
            params = "";
        }
        if(params.length() < min || params.length() > max) {
            throw new CheckException(message);
        }
    }
}
